import Vue from 'vue'
import VeeValidate, { Validator } from 'vee-validate'
// 导入中文语言包
import ar from 'vee-validate/dist/locale/zh_CN'
const phoneReg = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
// 验证码正则
const codeReg = /^\d{6}$/
// 密码正则
const pwdReg = /^\w{6,21}$/
Vue.use(VeeValidate)
Validator.localize('ar', ar)
// 实现手机号的验证
// 参数1：自定义验证规则的名称
// 参数2：自定义验证规则
Validator.extend('phone', {
  // 对用户输入的值验证
  // 使用正则或其他方式验证
  // 参1用户输入的值
  // 参2使用对象方式的时候属性的值
  validate(value, args) {
    return phoneReg.test(value)
  },
  // 给用户申明错误提示的地方
  // field对应表单的名字
  getMessage(field, args) {
    return '手机号验证失败'
  }

})
// 验证必要性的规则
Validator.extend('required', {
  validate: (value) => value, // 验证规则，value是我们输入的值
  getMessage: (field) => field + '必须输入！' // 验证失败的回调
})

// 验证码的验证规则
Validator.extend('code', {
  validate: (value) => codeReg.test(value), // 验证规则
  getMessage: (filed) => '验证码必须为6位数字！' // 验证失败的回调
})

// 密码的验证规则
Validator.extend('pwd', {
  validate: (value) => pwdReg.test(value), // 验证规则
  getMessage: (filed) => '密码为6到21位英文、数字、下划线' // 验证失败的回调
})

// 重复密码的验证规则
Validator.extend('ispwd', {
  validate: (value, args) => value === args[0], // 验证规则
  getMessage: (filed) => '重复密码必须和登录密码一致' // 验证失败的回调
})

// 协议规则
Validator.extend('isagree', {
  validate: (value) => value, // 验证规则
  getMessage: (filed) => '协议必须同意！' // 验证失败的回调
})
